home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / cmln1286.arc / BNCHMARK.ADA / CHAP14.ADA < prev    next >
Text File  |  1986-10-21  |  2KB  |  48 lines

  1. with TEXT_IO; use TEXT_IO;
  2. procedure CHAPTER_14 is
  3.  
  4.     --
  5.     -- Selected tests from Chapter 14 of the Ada LRM
  6.     --     This example is taken from section 14.7 of the Ada LRM.
  7.     --     Source available from Mark Petersen's Alpo-Net FIDO board at
  8.     --     (619) 741-3412, 300/1200/2400 8,N,1
  9.     --
  10.  
  11.  
  12.     type COLOR is (WHITE, RED, ORANGE, YELLOW, GREEN, BLUE, BROWN);
  13.     package COLOR_IO is new ENUMERATION_IO(ENUM => COLOR);
  14.     package NUMBER_IO is new INTEGER_IO(INTEGER);
  15.     use COLOR_IO, NUMBER_IO;
  16.  
  17.     INVENTORY : array (COLOR) of INTEGER := (20, 17, 43, 10, 28, 173, 87);
  18.     CHOICE : COLOR;
  19.  
  20.     procedure ENTER_COLOR (SELECTION : out COLOR) is
  21.     begin
  22.         loop
  23.             begin
  24.                 PUT ("Color selected: ");    --  prompts user
  25.                 GET (SELECTION);             --  accepts color typed, or raises exception
  26.                 return;
  27.             exception
  28.                 when DATA_ERROR =>
  29.                     PUT("Invalid color, try again.  ");  -- user has typed new line
  30.                     NEW_LINE(2);
  31.                     --  completes execution of the block statement
  32.             end;
  33.         end loop;    --  repeats the block statement until color accepted
  34.     end;
  35. begin    --  statements of CHAPTER_14
  36.  
  37.     NUMBER_IO.DEFAULT_WIDTH := 5;
  38.  
  39.     loop
  40.  
  41.         ENTER_COLOR(CHOICE);  --  user types color and new line
  42.  
  43.         SET_COL(5);  PUT(CHOICE); PUT(" items available");
  44.         SET_COL(40); PUT(INVENTORY(CHOICE));  --  default width is 5
  45.         NEW_LINE;
  46.     end loop;
  47. end CHAPTER_14;
  48.